import { all } from "axios";
import { createRouter, createWebHistory, RouteRecordRaw, RouterLink } from "vue-router";
import { getuserinfoapi, getrouter } from "../api/api";
import notfound from '../views/notfound/notfound.vue'
import { useRouterStore } from '@/store/routerInfo/index.ts';
import { useViewStore } from '@/store/navView/index.ts';
import pinia from '@/utils/pinia.ts';
import routerComponent from './routerComponent';

// const store = useRouterStore(pinia)
// const viewStore = useViewStore(pinia)

const whiteList: any = ['dyDashboard']
// 1. 配置路由
export const routes: Array<RouteRecordRaw> = [
    // {
    //     path: "/",
    //     name: "home",
    //     redirect: "/index",
    //     component: () => import("../views/home.vue"),
    //     children: [
    //         {
    //             path: "/index",
    //             name: "index",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/index.vue"),
    //         },
    //         {
    //             path: "/reconciliation",
    //             name: "reconciliation",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/report forms/reconciliation.vue"),
    //         },
    //         {
    //             path: "/payroll",
    //             name: "payroll",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/report forms/payroll.vue"),
    //         },
    //         {
    //             path: "/clientslist",
    //             name: "clientslist",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/clientslist.vue"),
    //         },
    //         {
    //             path: "/clientsdetail",
    //             name: "clientsdetail",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/clientsdetail.vue"),
    //         },
    //         {
    //             path: "/dealClient",
    //             name: "DealClient",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/index.vue"),
    //         },
    //         {
    //             path: "/detailSaasPay",
    //             name: "DetailSaasPay",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/detailSaasPay.vue"),
    //         },
    //         {
    //             path: "/detailPeriodInsure",
    //             name: "DetailPeriodInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/detailPeriodInsure.vue"),
    //         },
    //         {
    //             path: "/detailWeInsure",
    //             name: "DetailWeInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/detailWeInsure.vue"),
    //         },
    //         {
    //             path: "/detailGroupInsure",
    //             name: "DetailGroupInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/detailGroupInsure.vue"),
    //         },
    //         {
    //             path: "/detailEleSign",
    //             name: "DetailEleSign",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/dealClient/detailEleSign.vue"),
    //         },
    //         {
    //             path: "/recharge",
    //             name: "recharge",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/recharge.vue"),
    //         },
    //         {
    //             path: "/role",
    //             name: "role",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/set/role.vue"),
    //         },
    //         {
    //             path: "/cockpit",
    //             name: "cockpit",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/cockpit/cockpit.vue"),
    //         },
    //         {
    //             path: "/reportClaimAdjuster",
    //             name: "reportClaimAdjuster",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/reportClaimAdjuster/reportClaimAdjuster.vue"),
    //         },
    //         {
    //             path: "/approval",
    //             name: "approval",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/approval/approval.vue"),
    //         },
    //         {
    //             path: "/longInsureSet",
    //             name: "longInsureSet",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/longInsureSet/longInsureSet.vue"),
    //         },
    //         {
    //             path: "/dayInsureSet",
    //             name: "dayInsureSet",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dayInsureSet/dayInsureSet.vue"),
    //         },
    //         {
    //             path: "/claimSettlementBoard",
    //             name: "claimSettlementBoard",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/claimSettlementBoard/claimSettlementBoard.vue"),
    //         },
    //         {
    //             path: "/dayInsureAmountofincrease",
    //             name: "dayInsureAmountofincrease",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dayInsureAmountofincrease/dayInsureAmountofincrease.vue"),
    //         },
    //         {
    //             path: "/blacklist",
    //             name: "blacklist",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/blacklist/blacklist.vue"),
    //         },
    //         {
    //             path: "/whitelist",
    //             name: "whitelist",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/whitelist/whitelist.vue"),
    //         },
    //         {
    //             path: "/financeReceipt",
    //             name: "financeReceipt",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/financeReceipt/financeReceipt.vue"),
    //         },
    //         {
    //             path: "/financeInvoice",
    //             name: "financeInvoice",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/financeInvoice/financeInvoice.vue"),
    //         },
    //         {
    //             path: "/financeRebate",
    //             name: "financeRebate",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/financeRebate/financeRebate.vue"),
    //         },
    //         {
    //             path: "/insureView",
    //             name: "insureView",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/insureView/insureView.vue"),
    //         },
    //         {
    //             path: "/receipt",
    //             name: "receipt",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/receipt/receipt.vue"),
    //         },
    //         {
    //             path: "/clientPond",
    //             name: "clientPond",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/clients/clientPond.vue"),
    //         },
    //         {
    //             path: "/Daytodayinsurance",
    //             name: "Daytodayinsurance",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/tinyRemind/Daytodayinsurance/Daytodayinsurance.vue"),
    //         },
    //         {
    //             path: "/Groupaccidentinsurance",
    //             name: "Groupaccidentinsurance",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/tinyRemind/Groupaccidentinsurance/Groupaccidentinsurance.vue"),
    //         },
    //         {
    //             path: "/Handlingofreport",
    //             name: "Handlingofreport",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/tinyRemind/Handlingofreport/Handlingofreport.vue"),
    //         },
    //         {
    //             path: "/Longterminsurance",
    //             name: "Longterminsurance",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/tinyRemind/Longterminsurance/Longterminsurance.vue"),
    //         },
    //         {
    //             path: "/Paybybullet",
    //             name: "Paybybullet",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/tinyRemind/Paybybullet/Paybybullet.vue"),
    //         },
    //         {
    //             path: "/promotionposter",
    //             name: "promotionposter",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/promotionposter/promotionposter.vue"),
    //         },
    //         {
    //             path: "/rankinglist",
    //             name: "rankinglist",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/rankinglist/rankinglist.vue"),
    //         },
    //         {
    //             path: "/Departingmembers",
    //             name: "Departingmembers",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/Departingmembers/Departingmembers.vue"),
    //         },
    //         {
    //             path: "/PolicyholderEnquiries",
    //             name: "PolicyholderEnquiries",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/PolicyholderEnquiries/PolicyholderEnquiries.vue"),
    //         },
    //         {
    //             path: "/dashboardSassPay",
    //             name: "DashboardSassPay",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dashboard/sassPay/index.vue"),
    //         },
    //         {
    //             path: "/dashboardPeriodInsure",
    //             name: "DashboardPeriodInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dashboard/periodInsure/index.vue"),
    //         },
    //         {
    //             path: "/dashboardWeInsure",
    //             name: "DashboardWeInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dashboard/weInsure/index.vue"),
    //         },
    //         {
    //             path: "/dashboardGroupInsure",
    //             name: "DashboardGroupInsure",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dashboard/groupInsure/index.vue"),
    //         },
    //         {
    //             path: "/dashboardEleSign",
    //             name: "DashboardEleSign",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/dashboard/eleSign/index.vue"),
    //         },
    //         // {
    //         //     path: "/",
    //         //     name: "index",
    //         //     meta: {
    //         //         requireAuth: true,  // 该路由项需要权限校验
    //         //     },
    //         //     component: () => import("../views/index.vue"),
    //         // },
    //         {
    //             path: "/teamTarget",
    //             name: "TeamTarget",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/team/target/index.vue"),
    //         },
    //         {
    //             path: "/baobaiSaleList",
    //             name: "BaobaiSaleList",
    //             meta: {
    //                 requireAuth: true,  // 该路由项需要权限校验
    //             },
    //             component: () => import("../views/baobai/saleList.vue"),
    //         },
    //     ]
    // },
    {
        path: "/login",
        name: "login",
        component: () => import("../views/login/login.vue"),
    },
    {
        path: "/dyDashboard",
        name: "DyDashboard",
        meta: {
            requireAuth: true,  // 该路由项需要权限校验
        },
        component: () => import("../views/baobai/dashboard.vue"),
    },
    // {
    //     path: "/:pathMatch(.*)*",
    //     name: "notfound",
    //     component: notfound,
    // },
    // {
    //     path: "/personalmsg",
    //     name: "personalmsg",
    //     meta: {
    //         requireAuth: true,  // 该路由项需要权限校验
    //     },
    //     component: () => import("../views/personal/personalmsg.vue"),
    // },
];
const router = createRouter({
    history: createWebHistory(),
    routes,
});

// export const registerRouters = async () => {
//     const token = sessionStorage.getItem('token')
//     if (!token) return 
//     const store = useRouterStore()
//     let routerInfo = []
//     routerInfo = await store.routerList
//     if (!routerInfo?.length) {
//         routerInfo = await store.getRouters()
//     }
//     routerInfo.forEach((i: any) => {
//         router.addRoute(i)
//     })
//     store.setAddRoute(true)
//     // isFirst = false
// }
// 路由守卫
// router.beforeEach(async (to, from) => {
//     const token = sessionStorage.getItem('token')
//     if (token) {
//         if (to.path === '/login') {
//             return '/index'
//         } else {
//             // const store = useRouterStore()
//             // let routerInfo = []
//             // routerInfo = await store.routerList
//             // console.log(999, routerInfo);
//             // if (!routerInfo?.length) {
//             //     routerInfo = await store.getRouters()
//             // }
//             const store = useRouterStore()

//             console.log(123, to, store.isAddRoute);
//             // const hasRoutes = router.getRoutes()
//             if (store.isAddRoute) {
//                 console.log('a');
//                 console.log(345, router.getRoutes());
//                 // await registerRouters()
//                 // const exitRoute = router.getRoutes()
//                 // if(exitRoute?.length) {
//                 //     exitRoute.forEach((i: any) => {
//                 //         router.removeRoute(i.name)
//                 //     })
//                 // console.log(456,  router.getRoutes());
//                 //     await registerRouters()
//                 // console.log(789,  router.getRoutes());
//                 // }
//                 // router.replace({
//                 //     path: to.path,
//                 //     params: to.params,
//                 //     query: to.query
//                 // })
//                 // return {
//                 //     ...to,
//                 //     replace: true
//                 // }
//                 return true
//             } else {
//                 console.log('b');
//                 await registerRouters()
//                 return {
//                     ...to,
//                     replace: true
//                 }
//                 // next({ ...to, replace: true })
//             }
//             // if (sessionStorage.getItem('isFirst')) {
//             //     console.log(123, to);
//             //     next()
//             // } else {
//             //     console.log(456);
//             //     registerRouters()
//             //     next({ ...to, replace: true })
//             // }
//         }
//     } else {
//         if (whiteList.find((i: string) => i === to.path)) {
//             // next()
//             return true
//         } else {
//             if (to.path === '/login') {
//                 // next()
//                 return true
//             } else {
//                 return '/login'
//             }
//         }
//     }
//     // let routers: any = JSON.parse(sessionStorage.getItem('router'))
//     // let path = to.path
//     // if (routers) {
//     //     const i = routers.findIndex((ele: any, index: any) => {
//     //         return path === ele.path;
//     //     })
//     //     // console.log(i);
//     //     if (i === -1) {
//     //         if (path === '/login') {
//     //             sessionStorage.removeItem('router')
//     //             next()
//     //         } else {
//     //             next()
//     //         }
//     //     } else {
//     //         next()
//     //     }
//     // }
//     // if (to.meta.requireAuth) {  // 判断该路由是否需要登录权限
//     //     if (sessionStorage.token) {  // 获取当前的token是否存在
//     //         next()
//     //     } else {
//     //         // console.log("token不存在");
//     //         next({
//     //             path: '/login', // 将跳转的路由path作为参数，登录成功后跳转到该路由
//     //         })
//     //     }
//     // }
//     // else { // 如果不需要权限校验，直接进入路由界面
//     //     next();
//     // }
// });

export default router